import type { Next } from 'vona';
import type { IDecoratorSocketPacketOptions, ISocketPacketExecute } from 'vona-module-a-socket';
import type { WebSocket } from 'ws';
import { BeanBase } from 'vona';
import { SocketPacket } from 'vona-module-a-socket';

export interface ISocketPacketOptions<%=argv.beanNameCapitalize%> extends IDecoratorSocketPacketOptions {}

@SocketPacket<ISocketPacketOptions<%=argv.beanNameCapitalize%>>()
export class SocketPacket<%=argv.beanNameCapitalize%> extends BeanBase implements ISocketPacketExecute {
  async execute(_data: any, _ws: WebSocket, _options: ISocketPacketOptions<%=argv.beanNameCapitalize%>, next: Next): Promise<void> {
    // next
    return next();
  }
}
